import {
  OAuthStateInterface,
  AuthActionTypes,
  OAUTH_LOGIN_TYPE,
  OAUTH_QQ_USER_INFO_TYPE,
  OAUTH_LOGOUT_TYPE,
  OAUTH_SESSION_LOGOUT_TYPE
} from './types'

export const initialStateOAuth: OAuthStateInterface = {
  // 用户头像
  icon: '',
  // 用户名
  name: '',
  // 用户类型 0： QQ
  type: 0,
  // 用户ID
  userId: ''
}

export default (initialState: OAuthStateInterface) => {
  return function (
    state = initialState,
    action: AuthActionTypes
  ): OAuthStateInterface {
    switch (action.type) {
      case OAUTH_LOGIN_TYPE:
        return {
          ...state,
        }
      case OAUTH_QQ_USER_INFO_TYPE:
        return {
          ...state,
          ...action.value
        }
      case OAUTH_LOGOUT_TYPE:
        return {
          ...initialState
        }
      case OAUTH_SESSION_LOGOUT_TYPE:
        return {
          ...initialState,
          ...action.value
        }
      default:
        return state
    }
  }
} 